package com.situ.mall.admin.controller;

import com.situ.mall.common.entity.Member;
import com.situ.mall.common.exception.MyException;
import com.situ.mall.common.service.IMemberService;
import com.situ.mall.common.util.StringUtil;
import com.situ.mall.common.vo.TableVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;

/**
 * @author yangkx
 * @create 2023-09-21-9:05
 */
@Controller
@RequestMapping("/member")
public class MemberController {

    @Autowired
    private IMemberService memberService;

    //打开会员管理页面
    @GetMapping("/page")
    public String page(){
        return "member";
    }

    //查询渲染表格
    @GetMapping("/table")
    @ResponseBody
    public TableVO table(Integer page, Integer limit, String memberName, String tel){
        return memberService.table(page,limit,memberName,tel);
    }

    //切换按钮——切换会员状态
    @PostMapping("/status")
    @ResponseBody
    public void status(Integer id,String status){
        Member m = new Member();
        m.setId(id);
        m.setStatus(status);
        //有值的更新，没有值的不更新
        memberService.updateById(m);
    }

    //重置会员密码
    //先发请求去查旧密码，旧密码和数据库里的密码对比成功了，再去对比两个新密码，都通过，才更新密码
    @PostMapping("updatePassword")
    @ResponseBody
    public void updatePassword(Integer id,String password,String newPassword){
        //根据id查数据库里的密码，把传回来的旧密码加密后和它进行对比
        boolean b = memberService.selectById(id).equals(StringUtil.md5(password));
        //如果相同，则加密新密码后更新至数据库
        if (b){
            Member m = new Member();
            m.setId(id);
            m.setPassword(StringUtil.md5(newPassword));
            //有值的更新，没有值的不更新
            memberService.updateById(m);
        //不相同，抛异常
        }else {
            throw new MyException("旧密码不正确，请重新输入");
        }
    }

}
